ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseエラー・メッセージおよびSNMPトラップ
リリース7.0
E05175-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

エラーおよび警告の取得

次の例に示すとおり、JDBCでは、ネイティブ・エラー・コードおよびメッセージを取得できます。

例1.1
private static void printSQLExceptions(SQLException e) 
{ 
     while (e != null) { 
        System.out.println("SQLState: " +
        e.getSQLState()); 
        System.out.println("Message : " +
        e.getMessage()); 
        System.out.println("Vendor  : " +
        e.getErrorCode()); 
        e.printStackTrace(); 
        e = e.getNextException(); 
        System.out.println(""); 
     } 
      e.printStackTrace(); 
} 
        .   .   . 
try { 
      // JDBC method calls here 
}  
catch (SQLException ex) { 
     ex.printSQLExceptions(); 
} 

次の例に示すとおり、ODBCでは、ネイティブ・エラー・コードおよびメッセージは、SQLError関数を使用して取得できます。

例1.2

#define MSG_LNG 512

SQLCHAR szSqlState[MSG_LNG];              /* SQL state string  */

SQLINTEGER pfNativeError;                 /* Native error code */

SQLCHAR szErrorMsg[MSG_LNG];

                              /* Error msg text buffer pointer */

SQLSMALLINT   pcbErrorMsg;            

                             /* Error msg text Available bytes */

SQLRETURN ret = SQL_SUCCESS;

while ( ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO ) {

  ret = SQLError(henv, hdbc, hstmt, szSqlState, &pfNativeError,

                 szErrorMsg, MSG_LNG, &pcbErrorMsg);

  switch (ret) {

  case SQL_SUCCESS:

    fprintf(stderr, "*** %s\n*** ODBC Err = %s, ",

                    "TimesTen Err = %ld\n",

            szErrorMsg, szSqlState, pfNativeError);

    break;

  case SQL_SUCCESS_WITH_INFO:

    fprintf(stderr, "*** Call to SQLError failed with return ",

                    "code of SQL_SUCCESS_WITH_INFO.\n ",

                    "*** Need to increase size of ",

                    "message buffer.\n");

    break;

  case SQL_INVALID_HANDLE:

    fprintf(stderr, "*** Call to SQLError failed with ",

                    "return code of SQL_INVALID_HANDLE.\n");

    break;

  case SQL_ERROR:

    fprintf(stderr, "*** Call to SQLError failed with ",

                    "return code of SQL_ERROR.\n");

    break;

  case SQL_NO_DATA_FOUND:

    break;

  }

}

1回のODBC操作またはJDBC操作で、複数のエラーを生成できます。これらのエラーは、ODBC関数SQLErrorまたはJDBCメソッドSQLExceptionを複数回コールすることによって取得できます。